The present invention relates generally to publishing messages within a geographic area and more particularly to publishing messages to devices within a geographic area using a publish/subscribe messaging system.
In general, a publish/subscribe messaging system delivers messages from producers to consumers by routing messages based on topics and predicate evaluation. Recently, there has been a desire to route messages based on location information such as the location of the subscriber and/or the publisher. As the number of internet connected devices continues to grow, the need to route a large volume of messages at a predictably low latency on geolocation information and to route messages on correlated sensor attribute and location information, will drastically increase the amount of messages to be routed based on location information.
Currently available messaging systems cannot keep up with the volume and latency requirements of real time messaging while accurately routing messages based on location information. Instead, in order to keep up with the with the volume and latency requirements of real time messaging currently available messaging systems sacrifice the accuracy of the location information used for routing messages. For example, many of these systems use a technique known as geo-hashing, which divides geographical areas into fixed size rectangles that are associated with a geo-hash code. Due to the fact that actual geographic areas of interest are seldom rectangles that perfectly align with a rectangle associated with a specific geo-hash code, geo-hashing suffers from both false positives and false negatives which can cause negative consequences.